home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / parallax / mac_sit.hqx / Parallaxis 2.11 / README < prev    next >
Text File  |  1992-01-09  |  21KB  |  521 lines

  1. NOTICE
  2.  
  3. The Parallaxis software package is licensed free of charge. Therefore, we 
  4. provide absolutely no warranty of any kind in any case. The Universitaet 
  5. Stuttgart and the authors provide the Parallaxis software package "as is" 
  6. without warranty of any kind, either expressed or implied, including, but not 
  7. limited to, the implied warrenties of merchantability and fitness for a 
  8. particular purpose. The entire risk as to the quality and the performance of 
  9. the program is with you. Should the Parallaxis software package prove defective,
  10. you assume the cost of all necessary servicing, repair or correction.
  11.  
  12. In no event may the Universitaet Stuttgart or any of the programs' authors be 
  13. liable to you for damages, including any lost profits, lost monies, or other 
  14. special, incidental or consequential damages arising out of the use or inability
  15. to use (including but not limited to loss of data or data being rendered 
  16. inaccurate or losses sustained by third parties or a failure of the program to 
  17. operate with programs not included in the Parallaxis software package) the 
  18. program, even if you have been advised of the possibility of such damages, or 
  19. for any claim by any other party.
  20.  
  21.  
  22. COPYRIGHT AND PUBLIC DOMAIN LICENCE
  23.  
  24. The Parallaxis software package is being distributed by the Universitaet 
  25. Stuttgart as public domain software. Copyright (c) is with the authors, Ingo 
  26. Barth, Thomas Braunl, and Frank Sembach at the Universitaet Stuttgart, IPVR, 
  27. Germany. There is no warranty in any case as stated in the paragraph above.
  28.  
  29. You are free to use and copy the original Parallaxis software package free of 
  30. charge for non-commercial applications, provided that 
  31.     1)  the notices on copyright, public domain, and no warranty of this page
  32.         as well as a reference to this report are included,
  33.     2)  you return a filled-in copy of the attached registration sheet,
  34.         which gives us some information on the distribution of our software.
  35.         An intended commercial use requires the written consent of the authors.
  36.  
  37. You may obtain the Parallaxis software package for any of the following computer
  38. systems:
  39.     *  Apple Macintosh          (MAC OS, 2 MB or more recommended)
  40.     *  IBM PC/AT or compatibles (DOS)
  41.     *  APOLLO DN3000            (Unix)
  42.     *  SUN 3                    (Unix, OS 4.0)
  43.     *  SUN 4 / Sparcstation     (Unix, OS 4.0)
  44.     *  HP 9000/300              (HP-UX)
  45.     *  HP /800 series           (HP-UX)
  46.     *  DECstation 2100          (Ultrix)
  47.     *  VAXstation               (Ultrix)
  48.     *  CRAY-2                   (Unix)    (sorry, no usage of vectors)
  49.     *  MasPar MP 1200           (Ultrix)  (in preparation)
  50.  
  51. For receiving your copy of the Parallaxis software package and the Parallaxis 
  52. user manual, send a fee of DM 10 (outside Europe via air mail US $ 15) for the 
  53. manual and a fee of DM 5 (outside Europe US $ 5) for each computer system 
  54. version you would like to get on floppy disk. If you have Internet access, 
  55. you may also copy the Parallaxis system from:
  56.   ifigw.informatik.uni-stuttgart.de     (129.69.211.1)
  57.   in subdirectory    pub/parallaxis
  58. For mailing bug reports (no calls, please!), suggestions or your favourite 
  59. Parallaxis application, also contact the address below:
  60.  
  61. Dr. Thomas Braunl
  62. Universitaet Stuttgart
  63. Fakultaet Informatik
  64. Postfach 10 60 37
  65. D-7000 Stuttgart 10
  66. Germany
  67.  
  68. FAX:     +49 (711) 7816-346
  69. e-mail:  braunl@informatik.uni-stuttgart.de
  70.  
  71.  
  72. HINTS FOR VERSION 2
  73.  
  74. The power operator is now "**".
  75.  
  76. It is now possible to define multiple topologies at once (disjunct or overlay),
  77. or different topologies for procedures that are not nested. If multiple
  78. topologies are used, the topology name has to be specified for each PARALLEL
  79. block.
  80.  
  81. Since connections are now semi-dynamic, there are no lengthy connection lists
  82. any more at the beginning of each PARZ intermediate code program.
  83.  
  84. The simulator has been extended to operate source level debugging. For this
  85. reason, the compiler optionally generates a cross reference file (".xrf").
  86.  
  87.  
  88. LITERATURE
  89.  
  90. in English:
  91.  
  92. Barth, Braunl, Sembach:  Parallaxis Version 2  User Manual
  93.   Computer Science Report, no. 2/91, Universitaet Stuttgart, Feb. 1991
  94.   --> This report is a must for using Parallaxis !! <--
  95.   -->         Contact the address below.            <--
  96.  
  97. Barth, Braunl, Sembach:  Parallaxis User Manual
  98.   Computer Science Report, no. 3/90, Universitaet Stuttgart, March 1990
  99.   
  100. Braunl:  Parallaxis:  A Flexible Parallel Programming Environment for
  101.    AI Applications,  Applications of Artificial Intelligence VII, 
  102.    Orlando Florida, March 1989, pp. 275 (11)
  103.  
  104. Braunl:  A Specification Language for Parallel Architectures and 
  105.    Algorithms, Fifth International Workshop on Software Specification and 
  106.    Design, Pittsburgh Pennsylvania, May 1989, pp. 49 (3)
  107.  
  108. Braunl:  Structured SIMD Programming in Parallaxis,
  109.    Structured Programming, vol. 10, no. 3, July 1989, pp. 121 (12)
  110.  
  111. Braunl:  Transparent Massively Parallel Programming with Parallaxis,
  112.    ISSM International Conference on Parallel and Distributed Computing and
  113.    Systems, New York NY, Oct. 1990
  114.  
  115.  
  116. in German:
  117.  
  118. Barth:  Entwicklung eines Compilers fuer die parallele Programmiersprache
  119.    Parallaxis, Studienarbeit Nr. 835, Universitaet Stuttgart, March 1990
  120.  
  121. Barth:  Entwicklung eines Compilers fuer Parallaxis mit
  122.    dynamischen Verbindungsstrukturen, Diplomarbeit Nr. 705, 
  123.    Universitaet Stuttgart, Nov. 1990
  124.  
  125. Braunl:  Massiv parallele Programmierung mit dem Parallaxis-Modell
  126.    Informatik-Fachberichte Nr. 246, Springer-Verlag 1990.
  127.  
  128. Krauskopf:  Ein massiv paralleles Verfahren zur Stereobildauswertung,
  129.    Diplomarbeit, Universitaet Stuttgart Nr. 707, Nov. 1990
  130.  
  131. Liebelt:  Entwicklung und Untersuchung von massiv parallelen Hidden-Surface-
  132.    und Raytracing-Algorithmen, Diplomarbeit Nr. 769, Universitaet Stuttgart, 
  133.    Jan. 1991
  134.  
  135. Sembach:  Entwicklung eines Simulators fuer die parallele 
  136.    Zwischensprache PARZ, Studienarbeit Nr. 834, Universitaet Stuttgart, 
  137.    March 1990
  138.  
  139. Sembach:  Entwicklung eines symbolischen Debuggers fuer das parallele
  140.    Sprachensystem Parallaxis/PARZ, Diplomarbeit Nr. 706, Universitaet Stuttgart,
  141.    Nov. 1990
  142.  
  143. Verba:  Massiv-parallele Algorithmen zur Loesung von Problemen der linearen
  144.    Algebra, Studienarbeit Nr. 904, Universitaet Stuttgart, Nov. 1990
  145.  
  146. Walter:  Entwurf von massiv parallelen Simulated Annealing Algorithmen,
  147.   Studienarbeit Nr. 925, Universitaet Stuttgart, Jan. 1991
  148.  
  149. What's New in Version Two
  150. =========================
  151.  
  152. In version 2 of the Parallaxis language definition and the Parallaxis
  153. Programming System we did some major extensions, the most important being the
  154. introduction of semi-dynamical connection structures. Parallaxis programs may
  155. now have several independent or overlapping interconnection structures at a
  156. time, and different connection structures at different times (linked to
  157. procedure scopes). We tried to be upward compatible as much as possible,
  158. however, there are two minor changes you might have to do in order to run
  159. your old (version 1) Parallaxis programs:
  160.  
  161.  
  162. How to upgrade old Parallaxis Programs
  163.  
  164. *    change power operator symbol from "^" to "**"
  165. *    suffix load/store commands in procedures without selection
  166.     with "[*]" selection
  167.  
  168.  
  169. Language Changes
  170.  
  171. Data Types and Operators
  172.     *    Pointers
  173.     *    Variant Records
  174.     *    power operator "**"
  175. Dynamic data structures and variant record structures have been added. Syntax
  176. and Semantics is identical to Modula-2. The power operator had to be changed
  177. to double asterik, since the "^" symbol is now used for dereferencing pointer
  178. expressions.
  179.  
  180. Multiple Configuration and Connection Structures
  181. Several configuation and connection structures may be defined globally for the
  182. entire program, or locally for each procedure. Procedures with configuration/
  183. connection structures may not be nested inside each other. Multiple
  184. configuration/connection structures may be defined on disjointed sets of PEs
  185. (with the possibility of interconnections between these groups), each having
  186. its individual data declaration. Several configuration/connection structures
  187. may also be defined on the same set of PEs, resulting in an overlay structure.
  188. A typical program structure with two disjoint sets of PE groups is:
  189.  
  190.   CONFIGURATION group1 [...];
  191.   CONNECTION ...;  (* connections between group1 PEs *)
  192.   VECTOR ...;      (* vector data for group1 PEs only *)
  193.  
  194.   CONFIGURATION group2 [...];
  195.   CONNECTION ...;  (* connections between group2 PEs or between both groups *)
  196.   VECTOR ...;      (* vector data for group2 PEs only *)
  197.  
  198.   SCALAR ...;      (* common scalar data, there is NO common vector data *)
  199.  
  200.  
  201. PE selection syntax in PARALLEL, LOAD/STORE, and REDUCE statements has been 
  202. changed slightly because of this extension. Besides the PE-range, a selection
  203. also has to specify the name of the configuration in case there are more than
  204. one (i.e.: PARALLEL tree[3..7] ...).
  205.  
  206. Connections are no longer restricted to be 1:1 connections. They may now be
  207. arbitrary m:n connections (that is any input and output port may have an
  208. arbitrary number of connections). The arrival of multiple data values at a time
  209. has to be avoided. Therefore, the data exchange operations may be supplied with
  210. implicit data reduction operations.
  211.  
  212. Data Exchange
  213.     *    propagate [reduce]
  214.     *    send      [reduce]
  215.     *    receive   [reduce]
  216. All participating PEs had to be active in a propagate data exchange operation. 
  217. For multiple independent configuation structures, this is no longer possible. 
  218. Therefore, propagate has been given two siblings: send, for transferring data 
  219. to a destination-PE that does not have to be active (i.e. being in another 
  220. configuration, or also inside the same configuration), and receive, for 
  221. transferring data from a source-PE that does not have to be active.
  222.  
  223. All three data exchange operations may be specified with an implicit reduction 
  224. operator, in order to take care of possible m:n connections, reducing the data 
  225. stream on the way of transfer.
  226.  
  227. Standard Functions
  228.     *    parallel read
  229.     *    parallel write
  230.     *    in/out-connected
  231.     *    new / dispose
  232.     *    graphics routines
  233. Read and write may now take vector arguments, reflecting the parallel I/O 
  234. technology, called "Data Vault" at Thinking Machines and "Parallel Disk Array" 
  235. at MasPar. In/Out-connected functions have been changed according to the new 
  236. multiple connection structures, and dynamic storage allocation functions have 
  237. been added. The graphics routines are being ignored by the simulator in the 
  238. current version and are only executed in the compiled version.
  239.  
  240. Reduction
  241. User-defined reduction functions now have to have two vector arguments and a 
  242. vector result.
  243.  
  244.  
  245. Programming System Changes
  246.  
  247. Compiler
  248. The compiler now optionally creates cross-reference files for the symbolic 
  249. debugger of the simulator.
  250.  
  251. Simulator and Debugger
  252. The simulator also allows variant data structures (unions) and supports dynamic 
  253. connection structures. That is, the PE connections are no longer listed before 
  254. the actual commands in each PARZ program, but there are vector commands connect,
  255. biconnect and disconnect to build and discard dynamic connection structures. As
  256. a consequence, there is now a debugger command for displaying the dynamic 
  257. connections (formerly integrated in the LIST command).
  258.  
  259. The debugger has been extended to a symbolic debugger that operates on 
  260. Parallaxis level and on PARZ level (new commands handling Parallaxis 
  261. expressions are EXAMINE and ASSIGN). Parallaxis source code is always displayed,
  262. when available. All debugger commands formerly using PARZ labels only, may now 
  263. also use Parallaxis source line numbers.
  264.  
  265. The visualizer tool is still not ready for version 2 distribution. 
  266.  
  267. More Compilers
  268. There are two PARZ-to-C compilers. The first one is to speed up 
  269. Parallaxis programs on single-processor Unix workstations, and the second 
  270. compiler has been especially designed to run Parallaxis programs on the 
  271. massively parallel MasPar computer system (16,384 PEs). We hope to finish
  272. a compiler for the Connection Machine soon.
  273.  
  274.  
  275. New Features (Nov. 1991, UNIX-Versions only !!)
  276. ------------------------------------------
  277.  
  278. 1)  The PARZ-to-C and PARZ-MPL compilers can include code, which will generate 
  279.     a record-file similiar to the simulator record-file. 
  280.     The option -R invokes this function.
  281.  
  282. 2)  The graphics library functions, described in the manual,
  283.     have been extended and integrated into the Parallaxis compiler pa
  284.     and the PARZ compilers pz2c, pz2mpl and pz2mpls. The simluator
  285.     pz will support these functions soon.
  286.  
  287. =============================================================================
  288.  
  289. Parallaxis Graphics Interface
  290. (not yet implemented on the Macintosh and the IBM PC !!)
  291.  
  292.  
  293. Parallaxis provides a set of primitive procedures and functions to get a
  294. machine independent graphics interface. Although these procedures build
  295. a machine-independent graphics interface,the available graphics features
  296. depend on the machine used.
  297.  
  298. To handle the colors a new data structure is automatically declared:
  299.  
  300. TYPE  COLOR  =  RECORD
  301.                     RED,  GREEN,  BLUE  :  CARDINAL;
  302.                  END;
  303.  
  304. The components of this record hold the intensity of the corresponding co-
  305. lors. All functions and procedures set the read-only variable "Done" according
  306. to the success of the function or procedure.
  307.  
  308. OpenWindow  (SCALAR  x,  y  :  REAL)  :  SCALAR  INTEGER
  309.    opens a new window on the screen with the relative measure x and y
  310.    (relative to the absolute screen coordinates). The result is the window
  311.    selector which is needed to activate or to close the window.The new
  312.    window will automatically be activated when it is opened. Ifthe new
  313.    window could not be opened, the previously active window will stay
  314.    active.
  315.  
  316. CloseWindow  (SCALAR  handle  :  INTEGER)
  317.    closes the window with the window selector handle. No window
  318.    isactive.  Before the next graphics operation a window has to be
  319.    selected.
  320.  
  321. WindowSize  (SCALAR  VAR  x,  y  :  INTEGER)
  322.    returns the parameters x and y with the measure of the active window
  323.    in pixels.
  324.  
  325. SelectWindow  (SCALAR  handle  :  INTEGER)
  326.    activates the window with the window selector handle for the follo-
  327.    wing graphics commands.
  328.  
  329. SetColor  (SCALAR  c  :  COLOR)
  330. SetColor  (VECTOR  c  :  COLOR)
  331.    sets the actual painting color to the values contained in record "c".
  332.    The real color is depending on the hardware facilities of the system used.
  333.  
  334. SetPixel  (SCALAR  x,  y  :  INTEGER)
  335. SetPixel  (VECTOR  x,  y  :  INTEGER)
  336.    sets the point with the pixel coordinates (x,y) to the previously defined
  337.    color.  If SetPixel is called with vector arguments and SetColor has been
  338.    called previouslly with a scalar parameter, all pixels will be set to
  339.    this color.
  340.  
  341. GetPixel  (SCALAR  x,  y  :  INTEGER)  :  SCALAR  COLOR
  342.    returns the color of the point with the pixel coordinates (x, y).
  343.  
  344. Line  (SCALAR  x1,  y1,  x2,  y2  :  INTEGER)
  345.    draws a line using the actual color from the point with the pixel
  346.    coordinates (x1,y1) to the point with the pixel coordinates (x2, y2).
  347.  
  348. MoveTo  (SCALAR  x,  y  :  INTEGER)
  349.    defines the actual position for the following drawing routines at the
  350.    pixel with the coordinates (x, y).
  351.  
  352. Draw  (SCALAR  c  :  CHAR)
  353.    writes character c to the selected window at the actual position.
  354.  
  355. DrawInt  (SCALAR  i  :  INTEGER;  SCALAR  n  :  CARDINAL)
  356.    writes integer number i with a width of n characters to the selected
  357.    window at the actual position.
  358.  
  359. DrawCard  (SCALAR  i  :  CARDINAL;  SCALAR  n  :  CARDINAL)
  360.    writes cardinal number i with a width of n characters to the selected
  361.    window at the actual position.
  362.  
  363. DrawReal  (SCALAR  r  :  REAL;  SCALAR  n  :  CARDINAL)
  364.    writes floating point number r with a width of n characters to the
  365.    selected window at the actual position.
  366.  
  367. DrawFixPt  (SCALAR  r  :  REAL;  SCALAR  n,  p  :  CARDINAL)
  368.       writes floating point number r with a width of n characters and p
  369.       decimals to the selected window at the actual position.
  370.  
  371. DrawBool  (SCALAR  b  :  BOOLEAN)
  372.    writes boolean value b to the selected window at the actual position.
  373.  
  374. DrawString  (SCALAR  s  :  string)
  375.    writes string s to the selected window at the actual position.
  376.  
  377.  
  378. Windows with absolute pixel dimensions can be opened using the follo-
  379. wing function. This function is not predefined.
  380.  
  381. PROCEDURE  OpenAbsWindow  (SCALAR  x,  y  :  INTEGER)  :  SCALAR INTEGER;
  382.    SCALAR  ax,  ay  :  INTEGER;
  383. BEGIN
  384.    SelectWindow (0);
  385.    WindowSize  (ax,  ay);  (* get  maximum  window  size  *)
  386.    RETURN OpenWindow (FLOAT(x) / FLOAT(ax), FLOAT(y) / FLOAT(ay));
  387. END  OpenAbsWindow;
  388.  
  389.  
  390. On UNIX workstations, the output produced by the Draw procedures can
  391. be influenced by setting the environment variable PARALLAXIS_FONT to
  392. a valid X-Windows font string. The building of this string is defined in the
  393. X-Windows documentation.
  394.  
  395. E.g.
  396. $ setenv PARALLAXIS_FONT "-adobe-symbol-*-*-*-*-20-*-*-*-*-*-*-*"
  397. defines that all output is made using the adobe-font symbol in a size of 20
  398. pixel.
  399.  
  400. ---------------------------------------------------------------------------
  401.  
  402. PARZ Graphics Interface
  403. (not yet implemented on the Macintosh and the IBM PC !!)
  404.  
  405. The following commands are integrated in the language PARZ. All com-
  406. mands set the predefined variable "Done" according to the success of the
  407. operation.
  408.  
  409. s_vardesc  ":="  OPENW  s_VarConst_x  s_VarConst_y
  410.    s_VarConst_x and s_VarConst_y are two values in the range,
  411.    denoting width and height of the graphical output window, relative
  412.    to the maximum screensize. A unique window number is assigned
  413.    to the left hand side argument.
  414.  
  415. SELECTW  s_VarConst
  416.    The window with the number s_VarConst is activated for graphics output.
  417.  
  418. WSIZE  s_vardesc_x  s_vardesc_y
  419.    Width and height in pixel of the active window are assigned to
  420.    s_VarConst_x and s_VarConst_y.
  421.  
  422. CLOSEW  s_VarConst
  423.    The window with number s_VarConst is closed.
  424.  
  425. SETCOLOR  vardesc
  426.    vardesc is the first of three continous variables, containing the values
  427.    of the new actual drawing color.
  428.  
  429. SETPIXEL  VarConst_x  VarConst_y
  430.    The pixel with coordinates (VarConst_x, VarConst_y) is set to the
  431.    actual drawing color.
  432.  
  433. s_vardesc  ":="  GETPIXEL  s_VarConst_x  s_VarConst_y
  434.    The left hand side argument is the first of three continous INTEGER
  435.    variables receiving the color values (red, green, blue) of the specified
  436.    pixel.
  437.  
  438. MOVETO  s_VarConst_x  s_VarConst_y
  439.    Defines the start position for the next call of LINETO.
  440.  
  441. LINETO  s_VarConst_x  s_VarConst_y
  442.    Draws a line in the actual drawing color from the last position reached
  443.    with MOVETO or LINETO to position (s_VarConst_x,s_VarConst_y).
  444.  
  445. DRAW  s_VarConst1  [s_VarConst2  [s_VarConst3]  ]
  446.    Writes the scalar value of s_VarConst1 to the selected window at
  447.    the actual position. With only one argument, a standard format is
  448.    used for values of each type (boolean, char, integer, real, string).
  449.    With two arguments, s_VarConst2 is the minimal output length
  450.    for integers or reals. If s_VarConst1 is a character variable, it is
  451.    the first of a character array containing a string of maximal length
  452.    s_VarConst2.  Three arguments are used to write real-values in a
  453.    fixed-point representation. Here, s_VarConst2 is the minimal output
  454.    width and s_VarConst3 is the fraction width.
  455.  
  456. ==========================================================================
  457.  
  458. REGISTRATION / ORDER SHEET FOR THE PARALLAXIS SOFTWARE PACKAGE
  459.  
  460. Please fill in the blanks and return to:
  461.  
  462.        Dr. Thomas Braunl
  463.        Universitaet Stuttgart
  464.        Fakultaet Informatik
  465.        Postfach 10 60 37
  466.        D-7000 Stuttgart 10
  467.        Germany
  468.  
  469.        e-mail:  braunl@informatik.uni-stuttgart.de
  470.  
  471.  
  472. Name:     (first, last)      ..................................................
  473.  
  474. Company:  (if any)           ..................................................
  475.  
  476. Address:  (street)           ..................................................
  477.  
  478.           (city, ZIP)        ..................................................
  479.  
  480.           (country)          ..................................................
  481.  
  482. E-mail:                      ..................................................
  483.  
  484.  
  485. Intended Use of Parallaxis:  ..................................................
  486.  
  487.                              ..................................................
  488.  
  489.                              ..................................................
  490.  
  491.                              ..................................................
  492.  
  493.  
  494. Application Areas:           ..................................................
  495.  
  496.                              ..................................................
  497.  
  498.                              ..................................................
  499.  
  500.                              ..................................................
  501.  
  502.  
  503. --------------------------------------------
  504. | This is a [REGISTRATION]  / an [ORDER] . |   (please mark)
  505. --------------------------------------------
  506. (please make sure to accompany order with payment!)
  507.  
  508. [    ]  Parallaxis User Manual (order)
  509.  
  510. Computer systems used:       ..................................................
  511. (floppies ordered, resp.)
  512.                              ..................................................
  513.                              
  514.                              ..................................................
  515.  
  516.                              ..................................................
  517.  
  518.  
  519. Thank you for your cooperation!
  520.  
  521.